package com.igeek.oo;

/**
 * 抽象类：
 *      1.关键字： abstract
 *      2.抽象类的访问修饰符，必须是public，同接口一样，声明规则让其他类来实现
 *      3.与普通的类一样：可以有属性和方法，有方法的实现
 *      4.与普通的类不同：也可以有抽象的方法，同接口一样，只有方法的声明，没有方法体的实现
 *      5.抽象类也不能被实例化
 *      6.抽象类也可以继承，继承的子类，需要去实现父类中抽象的方法，但是abstract关键字不能修饰子类中重写的方法\
 *      7.在普通的类中，不允许存在抽象的方法；反之，在抽象类中，可以没有抽象方法
 *
 */
public abstract class Person {

    public int age;

    public void sleep(){
        System.out.println("这是一个普通的方法");
    }

    /**
     * 在抽象类中，可以有抽象的方法，只能是方法的声明，而没有方法的实现
     * @return
     */
    public abstract boolean isFlag();
}

class Human extends Person{

    @Override
    public  boolean isFlag() {
        return false;
    }

}